package com.ferry.id.pool.dao;

import com.ferry.id.pool.domain.Alloc;

import java.util.List;

/**
 * Created by daiyong
 */
public interface AllocDao {

	/**
	 * 获取所有的分配记录
	 * @return
	 */
	List<Alloc> getAllAllocs();

	/**
	 * 更新并且获得分配记录
	 * @param namespace
	 * @return
	 */
	Alloc updateMaxIdAndGetAlloc(String namespace);

	/**
	 * 按照指定步长获取分配记录
	 * @param leafAlloc
	 * @return
	 */
	Alloc updateMaxIdByCustomStepAndGetLeafAlloc(Alloc leafAlloc);

	/**
	 * 获取所有的命名空间
	 * @return
	 */
	List<String> getAllNamespaces();
}
